/* Copyright (c) 2001, Nokia Mobile Phones. All rights reserved */
#ifndef __MSVOBSERVER_H__
#define __MSVOBSERVER_H__

#include <e32std.h>

/*!
 @class MMsvObserver

 @discussion Mixin class. Observer which handles updates from the Message Server
 interface
 */
class MMsvObserver
{
public:
    enum TStatus
    {
        ECreated, EMovedToOutBox, EMovedToInbox, EScheduledForSend, ESent, EDeleted
    };

    enum TError
    {
        EScheduleFailed, ESendFailed, ENoServiceCentre, EFatalServerError
    };
    /*!
     @function HandleStatusChange

     @discussion handle a status change
     @param aStatus the new status
     */
    virtual void HandleStatusChange( TStatus aStatus ) = 0;

    /*!
     @function HandleError

     @discussion handle an error condition
     @param aError the error code
     */
    virtual void HandleError( TError aError ) = 0;

    /*!
     @function HandleReceivedMessage

     @discussion handle a received Message
     @param aMessageText the Message body text
     */
    virtual void HandleReceivedMessage( const TDesC& aMessageText ) = 0;
};

#endif
